import { Random } from 'mockjs';
import { Interview } from '../../src/types/Candidate';

const JobNameMockList = [
  '全栈开发工程师',
  'ios开发工程师',
  'Unity客户端主程',
  '服务器运维工程师',
  '大数据开发工程师',
  '算法工程师',
  'Python工程师',
  '实习生',
  '深度学习算法工程师',
  'Django工程师',
  'Java工程师',
  'php工程师',
  '算法实习生',
  'NLP实习生',
  '机器学习高级工程师',
  '单片机/MCN实习生',
  '前端/全栈工程师',
  'Python Web工程师',
  '营销主管',
  '中级JAVA工程师',
  '高级Java工程师',
  'Flask工程师',
  'Vue前端开发',
  'Vue高级工程师',
  'Vue实习生',
];

const JobStatusMockList = ['已发布', '已完结', '已下线'];

const EducationMockList = [
  '高中学历',
  '大专学历',
  '本科学历',
  '硕士学历',
  '博士学历',
];

const YearRequereMockList = [
  '经验5-10年',
  '经验5-10年',
  '经验2-5年',
  '经验2-5年',
  '经验2年以下',
  '经验不限',
  '经验10年以上',
];

const locationMockList = [
  ['110000', '110100', '110101'],
  ['130000', '130100', '130104'],
  ['320000', '320100', '320111'],
];

const UserNameMockList = [
  '刘备',
  '关羽',
  '张飞',
  '诸葛亮',
  '赵云',
  '黄忠',
  '马超',
];

const JobIntroAceMockList = [
  '平台好 业务好 团队好 福利好',
  '五险一金、补充医疗',
  '六险一金 餐补交补 弹性工作 双休 年终奖多',
  '大平台',
];

const JobIntroDescriptionMockList = [
  '微软亚太研发集团成立于2006年1月18日，是微软在美国之外规模最大、职能最完备的硏发基地，拥有完整创新链条，职能覆盖基础硏究、技术孵化、产品开发和战略合作，致力打造“开放、创新、共赢“的产业创新生态环境，在赋能各行业数字化转型中发挥了积极作用。\n微软亚太研发集团包括北京、上海、苏州三个研发中心，研究方向涵盖云计算、大数据、人工智能、机器学习、自然语言处理、语音识别、图像识别、自然人机交互等十余个智慧科学领域，并深度参与微软Office 365、MSAI、Bing搜索引擎、Azure云、等核心产品的开发，及微软全线硬件产品的研发及制造。\n北京Bing、Azure、OXO，苏州O365、SharePoint、Bing、MMD、MSAI 、MMX等均有前端、全栈和后端开发的需求\n\n\n岗位要求：\n•1 年以上的Web或移动前端开发经验\n•强大的JavaScript / TypeScript，React，Webpack等开发技能\n•出色的问题解决，设计，编码和调试技能\n•良好的用户体验设计思维\n•出色的沟通和跨地域协作能力\n•有开源经验者优先\n•对UI技术充满热情\n•在日常开发工作中运用批判性思维以寻求持续优化和创新机会的能力\n面试流程: HR电话沟通 + 技术初试（1轮，线上技术面试）+ 技术复试（4-5轮，线上技术面试，一般半天或一天面完）\n目前纯前端和全栈均有HC有，意向前端转全栈同学也欢迎投递~',
  '岗位职责：\n1、分析及参与业务需求的迭代开发，提供系统架构设计方案并进行落地。\n2、负责对业务增长中遇到的技术瓶颈进行攻关，确保系统稳定性及业务高速增长。\n3、负责对现存及未来系统进行宏观的思考，规划完善形成统一的框架、平台、体系或组件。\n4、以自身良好的项目管理与协调沟通能力，负责跨团队的重点项目的推进工作。\n\n任职要求：\n1、计算机、数学等理工相关专业，有良好的数学基础与计算机知识。\n2、精通相关语言的技术栈：Java、Go、Python、C++，并主导设计过通用架构框架。\n3、扎实的编程技术基础，精通微服务、消息中间件、容器化等相关技术有相关系统设计经验。\n4、对数据结构、算法设计、系统架构设计等有较为深刻的理解。\n5、有分布式、高并发、高负载、高可用性系统设计开发经验，并参与过中等以上规模的项目实战。\n6、具有较强的项目规划和决策能力，善于捕捉业务需求、架构设计中存在的问题并给出有效的解决措施和方法。',
  '岗位职责：\n1、根据产品方案和设计成果，负责项目功能技术开发；\n2、负责与架构师、测试工程师保持紧密的沟通和协作；\n3、完成所承担功能模块与其他模块的集成、部署、修改、重构与调优；\n４、维护和升级现有产品，快速定位并修复现有软件缺陷；\n\n\n任职要求：\n1、4年以上PHP Web项目开发经验； \n2、熟练掌握常用的 Linux 命令以及 Shell\n3、熟练掌握PHP语言，熟练LNMP/LAMP开发模式；\n4、熟悉Laravel开发框架，熟练使用一种模板语言（Smarty、Velocity、Django等）\n5、 熟悉 MySQL 数据库设计、使用及优化\n6、熟悉常用Web服务器（Apache/Lighttpd/Nginx）的配置\n7、掌握Redis/Memcache等非关系型数据库，对于缓存结构设计有丰富经验；\n8、了解nodejs, python等脚本语言并有项目经验（优先考虑）;\n',
  '岗位职责：\n1. 运营和赋能企业客户，为客户交付企业学习项目结果，为提升客户体验负责，增强客户粘性。\n2. 为企业客户提供学习平台的运营咨询和服务，设计和交付企业培训项目。\n3. 为新客户培训和赋能，完成客户成功在 UMU landing，并且 utilize UMU。\n4. 建立客户运营流程和规范，实现客户运营的标准化和规模化。\n5. 组建极为优秀的客户运营团队，带领团队不断创新，为结果负责。\n6. B 端客户日常服务和运营。\n',
];

const InterviewStageMockList = ['第一轮面试', '第二轮面试', '第三轮面试'];

const CandidateStageMockList = [
  '第一轮面试',
  '第二轮面试',
  '第三轮面试',
  '未开始面试',
  '面试失败',
  '面试通过',
];

const InterviewResultMockList = ['面试中...', '面试失败', '面试通过'];

const InterviewContentMockList = [
  '面试通过！',
  '简历还在处理中。。。',
  '求职者未能通过面试，期待后续合作。',
  '面试官还在商议中。。。',
  '求职者简历与职位不符。',
];

let pickName = '';

Random.extend({
  interviews() {
    const result: Interview[] = [];
    const times = this.natural(0, 3);
    for (let i = 0; i < times; i += 1) {
      const temp = {
        name: this.pick(InterviewStageMockList),
        status: this.pick(InterviewResultMockList),
        content: this.pick(InterviewContentMockList),
      };
      if (temp.status === '面试中...') {
        temp.content = '';
      }
      result.push(temp);
    }
    return result;
  },
});

const pickOneName = (force: boolean): string => {
  if (!pickName || force) {
    pickName = Random.pick(UserNameMockList);
  }
  return pickName;
};

export {
  JobNameMockList,
  EducationMockList,
  YearRequereMockList,
  UserNameMockList,
  InterviewStageMockList,
  InterviewContentMockList,
  JobStatusMockList,
  locationMockList,
  CandidateStageMockList,
  JobIntroAceMockList,
  JobIntroDescriptionMockList,
  pickOneName,
};
